//? let i 使得循环中的每个迭代都创建一个新的变量i 不会变为函数(或全局)变量
for (let i = 1; i <= 5; i++) {
    setTimeout(function timer() {
        console.log(i)
    }, i * 1000)
}
//? var i 会将i成为函数作用域中的变量，在循环中，变量i的值将被重复赋值.循环完毕执行定时器内的函数,所取到的i都是一样的
for (var i = 1; i <= 5; i++) {
    setTimeout(function timer() {
        console.log(i)
    }, i * 1000)
}
